#ifndef __GND_MODULE_INFOMATION_H__
#define __GND_MODULE_INFOMATION_H__

#include <gtkmm/label.h>
#include <gtkmm/image.h>
#include <gtkmm/button.h>
#include <gtkmm/menubutton.h>
#include <gtkmm/popover.h>
#include <giomm/memoryinputstream.h>
#include <gtkmm/scale.h>

#include "Module.h"

namespace Gnodroid {

    class ModuleInfomation :
        public Module
    {
    public:
        ModuleInfomation();
        void
        start();
        void
        stop();
    protected:
    private:
        Gtk::Label* lb_model;
        Gtk::Label* lb_brand;
        Gtk::Label* lb_sdk;
        Gtk::Label* lb_androidver;
        Gtk::Label* lb_kernel;
        Gtk::Label* lb_ram;
        Gtk::Label* lb_resolution;

        Gtk::Image* img_screencap;
        Gtk::Button* btn_screencap_start;
        Gtk::Button* btn_screencap_save;
        Gtk::MenuButton* mbtn_screencap_setting;

        std::shared_ptr<Gtk::Popover> pov_screencap_interval;
        std::shared_ptr<Gtk::Scale> scl_screencap_interval;

        std::shared_ptr<bool> m_shrIsContinue {nullptr};
        std::shared_ptr<int> m_shrInterval {nullptr};

        bool m_bIsConnected {false};
        bool m_bIsScreencapStart {false};
        int m_interval;

        Glib::RefPtr<Gio::MemoryInputStream> m_curScreencap {nullptr};

        //void
        //__init();
        void
        __setNotConnected();
        void
        __setStopScreencap();


    };
}


#endif
